//
//  main.m
//  NSValue
//
//  Created by admin on 2019/8/9.
//  Copyright © 2019 猫爷爷的酱醋茶. All rights reserved.
//

/*
    我们之前学习的结构体
    NSRange
    NSPoint(CGPoint)
    NSSize(CGSize)
    NSRect(CGRect)
    这些都是结构体，它们的变量无法存储到集合之中。
 
 解决方法：
    先将这些结构体存储到OC对象进行包装，再将OC对象存储到集合之中。
 
 NSValue类的对象，就是用来包装结构体变量的。
    NSNumber 用来包装基本的数据类型。
 
 */

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    CGPoint p1 = CGPointMake(10, 20);
    CGPoint p2 = CGPointMake(20, 20);
    CGPoint p3 = CGPointMake(30, 20);
    CGPoint p4 = CGPointMake(40, 20);
    NSLog(@"%@",NSStringFromPoint(p1));
    
    NSValue *v1 = [NSValue valueWithPoint:p1];
    NSValue *v2 = [NSValue valueWithPoint:p2];
    NSValue *v3 = [NSValue valueWithPoint:p3];
    NSValue *v4 = [NSValue valueWithPoint:p4];
    
    
    
    NSArray *arr = @[v1,v2,v3,v4];
    
    for(id point in arr)
    {
        NSLog(@"%@",point);
   
    }
    
    for(NSValue *v in arr)
    {
        NSLog(@"%@",NSStringFromPoint(v.pointValue));
    }
    
    return 0;
}
